<?php

    // http://notes.rudomilov.ru/2007/08/16/poisk-s-russkoy-morfologiey-sredstvami-php/

    // error_reporting(E_ALL | E_STRICT);

    // first we include phpmorphy library
    require_once(dirname(__FILE__) . '/../lib/phpmorphy/src/common.php');

    // set some options
    $opts = array(
        // storage type, follow types supported
        // PHPMORPHY_STORAGE_FILE - use file operations(fread, fseek) for dictionary access, this is very slow...
        // PHPMORPHY_STORAGE_SHM - load dictionary in shared memory(using shmop php extension), this is preferred mode
        // PHPMORPHY_STORAGE_MEM - load dict to memory each time when phpMorphy intialized, this useful when shmop ext. not activated. Speed same as for PHPMORPHY_STORAGE_SHM type
        'storage' => PHPMORPHY_STORAGE_FILE,
        // Extend graminfo for getAllFormsWithGramInfo method call
        'with_gramtab' => false,
        // Enable prediction by suffix
        'predict_by_suffix' => true, 
        // Enable prediction by prefix
        'predict_by_db' => true
    );

    // Path to directory where dictionaries located
    $dir = dirname(__FILE__) . '/../lib/phpmorphy/dicts';

    // Create descriptor for dictionary located in $dir directory with russian language
    $dict_bundle = new phpMorphy_FilesBundle($dir, 'rus');

    // Create phpMorphy instance
    try {
        $morphy = new phpMorphy($dict_bundle, $opts);
    } catch(phpMorphy_Exception $e) {
        die('Error occured while creating phpMorphy instance: ' . $e->getMessage());
    }

    // All words in dictionary in UPPER CASE, so don`t forget set proper locale
    // Supported dicts and locales:
    //  *------------------------------*
    //  | Dict. language | Locale name |
    //  |------------------------------|
    //  | Russian        | cp1251      |
    //  |------------------------------|
    //  | English        | cp1250      |
    //  |------------------------------|
    //  | German         | cp1252      |
    //  *------------------------------*
    $codepage = $morphy->getCodepage();
    setlocale(LC_CTYPE, array('ru_RU.CP1251', 'Russian_Russia.1251'));

    // Hint: in this example words $word_one, $word_two are in russian language(cp1251 encoding)

?>